Cloud computing includes a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Cloud computing is often characterized by on-demand self services, broad network access, resource pooling, rapid elasticity, and measured services.
For example, cloud computing could include an Infrastructure as a Service (IaaS) model, in which the consumer does not manage or control the underlying cloud infrastructure, but the customer is provided with a capability to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. Cloud computing is often used in conjunction with virtualized resources. Virtualization of a resource typically refers to an arrangement in which logical resources are abstracted from physical resources.
Cloud computing has received a great deal of attention recently, including the provision of several solutions from prominent information technology (IT) companies. Cloud computing has the potential to overhaul the way IT services and businesses are offered and conducted, thus providing significant cost savings and additional capabilities.
Part of the cost savings are due to the scale and level of automation provided in such a model. For example, in order to have cost savings in an Infrastructure as a Service (IaaS) model, one may need at least 20,000 computer servers. Indeed, many established IaaS providers have more than 100,000 servers as part of the cloud. However, building and managing such a large system presents a number of challenges.